package com.icekrvams.billing.listeners

import com.android.billingclient.api.BillingResult
import com.android.billingclient.api.ProductDetails
import com.android.billingclient.api.Purchase

/**
 * Billing 相关数据查询结果监听器。
 * 1.查询商品详情信息结果回调：[onQueryProductDetailsResponse]
 * 2.查询已拥有商品结果回调：[onQueryPurchasesResponse]
 * 3.从 GooglePlay 购买页面返回应用，购买结果回调：[onPurchasesUpdated]
 */
interface BillingDataResponseListener {

    /**
     * ProductDetails 查询结果。
     * @param productDetails 查询到的可供购买的所有商品信息。
     */
    fun onQueryProductDetailsResponse(
        billingResult: BillingResult,
        productDetails: List<ProductDetails>?
    ) {
    }

    /**
     * Purchases 查询结果。
     * @param purchasesList 当前拥有的所有商品（已购买的商品）。
     */
    fun onQueryPurchasesResponse(
        billingResult: BillingResult,
        purchasesList: List<Purchase>
    ) {
    }

    /**
     * PlayStore 的购买页关闭，回到应用时，常见情况：
     * 1.responseCode == BillingResponseCode.OK 表示完成购买
     * 此时 [purchases] 不会空，但请注意，列表中并非全部已拥有的商品，而是仅包含方才购买的商品。
     *
     * 2.responseCode != BillingResponseCode.OK 取消购买、已拥有该商品等。
     * 此时 [purchases] 为空。
     */
    fun onPurchasesUpdated(
        billingResult: BillingResult,
        purchases: List<Purchase>?
    ) {
    }
}
